package com.dao;

import com.dto.in.AddRecordDto;
import com.entity.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by Administrator on 2018/10/20.
 */
public interface AdviceDao {
    //投诉建议
    int advice(@Param("userid") String userId, @Param("phone") String phone, @Param("title") String title, @Param("content") String content);

    int addEvaluation(@Param("stdUserId") Integer stdUserId, @Param("stdId") Integer stdId, @Param("teaUserId") Integer teaUserId, @Param("evaluationNum") Integer evaluationNum);

    int findTeacherValue(@Param("userId") Integer userId);

    int updateTeacherValue(@Param("userId") Integer userId, @Param("num") Integer num);

    int updateRecordAppraise(@Param("recordId") Integer recordId);

    List<AdvicesInfo> findAdvicesList(@Param("page") Integer page, @Param("length") Integer length);

    int findAdvicesListCount();

    int setAdvices(@Param("id") Integer id);

    List<Record> findReadyStatusS(@Param("userId") String userId, @Param("type") String type, @Param("limit") Integer limit);

    List<Record> findReadyStatusT(@Param("id") String id, @Param("userId") String userId, @Param("type") String type, @Param("limit") Integer limit);

    int updateRecordStatus(@Param("id") Integer id);

    int createRecord(AddRecordDto addRecordDto);

    int createRecordOrder(@Param("recordId") Integer recordId, @Param("fewHoursString") String fewHoursString, @Param("fewHoursPrice") BigDecimal fewHoursPrice);

    int addRefund(@Param("recordId") Integer recordId);

    List<RecordOrderInfo> findRecordOrder(@Param("recordId") Integer recordId);

    int updateRecordOrderStatus(@Param("id") Integer id);

    int updateRecordStatus1(@Param("id") Integer id);

    int updateTeaMoney(@Param("userId") Integer userId, @Param("money") BigDecimal money,@Param("date")Date date);

    RecordOrderMoneyInfo findRecordOrderTeaUserId(@Param("id") Integer id, @Param("recordId") Integer recordId);

    int addMoneyRequest(@Param("userId") String userId, @Param("realName") String realName, @Param("money") BigDecimal bigDecimal, @Param("cardId") String cardId,@Param("cPhone") String cPhone,@Param("cType") String cType);

    int updateUserMoney(@Param("userId")String userId,@Param("bigDecimal")BigDecimal bigDecimal);

    int findAppliedCount(@Param("stdUserId") Integer stdUserId, @Param("stdId") Integer stdId);

    int cancelOrder(@Param("id") Integer id);

    Record findRecordById(@Param("id") Integer id);

    int updateMoneyRequestStatus(@Param("userId") Integer userId);

    String findOrderStatus(@Param("id") String id);

    int updatePayStatus(@Param("id") Integer id, @Param("nonceStr") String nonceStr);

    List<Price> findPrice(@Param("userId") Integer userId);

    int updataPayMessage(@Param("id") String transaction_id, @Param("no") String out_trade_no, @Param("nonceStr") String nonceStr, @Param("payTime") String payTime);


    int updateOrderStatus(@Param("id") String id, @Param("operation") String operation);

    List<bill> findBill(@Param("userId") Integer userId, @Param("type") String type);

    int findSubjectPriceNum(@Param("userId") Integer userId, @Param("id") Integer id);

    int insertBill(@Param("userId") String userId, @Param("realName") String realName, @Param("money") BigDecimal money, @Param("cardId") String bankCardId, @Param("UUID") String uuid);

    int deleteSubjectPrice(@Param("userId") Integer userId, @Param("id") Integer id);

    int updataSubjectPrice(@Param("userId") Integer userId, @Param("id") Integer id, @Param("subjectId") Integer subjectId, @Param("price") BigDecimal price);
}
